permission_handler 只有支援三平台 ANDROID、IOS、WINDOWS,大家要注意一下!
雖然只有支援三平台,但為什麼要用呢?
主要因為 ANDROID、IOS 手機,會要跟使用者要求權限,所以還滿重要的一定要介紹呀。
有設定和如何在android 和ios 上的使用方式
if (await Permission.contacts.request().isGranted) {
// Either the permission was already granted before or the user just granted it.
}
// You can request multiple permissions at once.
Map<Permission, PermissionStatus> statuses = await [
Permission.location,
Permission.storage,
].request();
print(statuses[Permission.location]);
直接在 pubspec.yaml 加上 permission_handler: ^11.0.0 ,然後pub get
dependencies:
permission_handler: ^11.0.0
在 /lib/main.dart 加入 程式
import 'package:permission_handler/permission_handler.dart';
用藍芽權限為例:
Future<void> _checkBlueInfo() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.bluetooth,
Permission.bluetoothConnect,
Permission.bluetoothScan,
Permission.bluetoothAdvertise
].request();
print(statuses[Permission.bluetoothConnect]);
print(statuses[Permission.bluetoothScan]);
print(statuses[Permission.bluetoothAdvertise]);
}
在android 的 AndroidMainfest.xml 加上藍芽權限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
範例的藍芽權限可以依要要求的權限修改,就可以使用了,是不是很方便呢?
特別用android 的藍芽權限,是因為在使用藍芽時,要求鄰近裝置權限,一定要同意,
不同意後,連藍芽耳機都不行使用,真的很奇怪,跳出的說明跟藍芽沒什麼關係,我只是要用耳機呀!